package com.taotao.frame.util;

/**
 * <p>
 * 当前代码信息的工具类
 * </p>
 *
 * @author fanbeibei
 * @version V1.0
 * @since 2019/8/12 20:09
 */
public class CurrentCodeInfoUtil {
    private static int ORIGIN_STACK_INDEX = 2;

    /**
     * 获取当前文件名
     *
     * @return
     */
    public static String getFileName() {
        return Thread.currentThread().getStackTrace()[ORIGIN_STACK_INDEX].getFileName();
    }

    /**
     * 获取当前类名
     *
     * @return
     */
    public static String getClassName() {
        return Thread.currentThread().getStackTrace()[ORIGIN_STACK_INDEX].getClassName();
    }

    /**
     * 获取当前方法名称
     *
     * @return
     */
    public static String getMethodName() {
        return Thread.currentThread().getStackTrace()[ORIGIN_STACK_INDEX].getMethodName();
    }

    /**
     * 获取当前代码行号
     *
     * @return
     */
    public static int getLineNumber() {
        return Thread.currentThread().getStackTrace()[ORIGIN_STACK_INDEX].getLineNumber();
    }
}